package smallDemend;
import java.util.Scanner;
/**
 * 键盘录入一个字符串
 * 要求：长度小于等于9
 * 只能是数字
 * 将内容变成罗马数字
 * 主要实现思路：查表法
 */
@SuppressWarnings("all")
public class RomanNumber {
    //创建主方法
    public static void main(String[] args) {
        //录入字符串
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入字符串:");
        String user = sc.nextLine();
        //创建表，使指定字符和相应索引想对应
        String[] strings={" ","I","II","III","IV","V","VI","VII","VIII","IX"};
        //创建方法判断原始数据是否满足题目格式要求
        boolean result = romanNumber(user);
        //打印判断结果
        System.out.println(result);
        //创建数组用于存储每一位数
        int count= user.length();
        int[] arr=new int[count];
        //创建可变字符串用于拼接字符串
        StringBuilder sb=new StringBuilder();
        //判断格式正误
        if (result==true){
            int i = Integer.parseInt(user);
            for (int i1 = user.length()-1; i1 >=0; i1--) {
                //拿到每位数字
                int i2 = i % 10;
                //舍弃拿到的位数的数字
                i=i/10;
                //将拿到的数据添加至数组
                arr[i1]=i2;
            }
        }
        //拼接字符串
        for (int i = 0; i < arr.length; i++) {
            sb.append(strings[arr[i]]);
        }
        //打印字符串
        System.out.println(sb);
    }

    private static boolean romanNumber(String user) {
        //判断数字长度是否大于9，如果大于9，直接返回false
        if (user.length()>9){
            return false;
        }
        //判断字符串的每一位字符是否都为数字，如果不是直接返回false
        int i1 = Integer.parseInt(user);
        for (int i = 0; i < user.length(); i++) {
            if (i1%10<0||i1%10>9){
                return false;
            }
        }
        return true;
    }
}
